#include<stdio.h>
int factorial(int n);
int main (void)
{
    int n;
    scanf("%d",&n);
    printf("%d\n",factorial(n));
    return 0;
}

int factorial (int n)
{	int i, fact=1;
    for (i=1; i<=n; i++)
        fact=fact*i;
    return fact;
}

//设置循环的变量与连乘的变量
//循环的变量设置不止一个变量，为了能够接收上一个值并将代码进行下去所以需要用到第二个变量


//    多数阶乘求和:
//#include<stdio.h>
//int fact1(n){
//    int fact=1;
//    for(int i=1;i<=n;i++){
//        fact=fact*i;
//    }
//    return fact;
//}
//int main(){
//    int n=0,sum=0;
//    for(n=1;n<=10;n++){
//        sum+=fact1(n);
//    }
//    printf("%d",sum);
//    return 0;
//}




//通过递归与非递归的方式求阶乘
//#include<stdio.h>
//void fac(int m){
//    int fact=1;
//    for(int i=1;i<=m;i++){
//        fact=fact*i;
//    }
//    printf("%d\n",fact);
//}
//int fac1(int m){
//    if(m<=1){
//        return 1;
//    }
//    return fac1(m-1)*m;
//}
//int main(){
//    int m=0;
//    scanf("%d",&m);
//    fac(m);
//    printf("%d\n",fac1(m));
//    return 0;
//}